﻿package {
	/**
	 * Knob Test 
	 *
	 * @author			Giovambattista Fazioli <g.fazioli@undolog.com>
	 * @web				http://www.undolog.com
	 * @version			1.1.0
	 *
	 */
	
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
	import flash.geom.*;

	import undolibrary.ui.*;
	
	public class KnobTest extends MovieClip {

		public function KnobTest():void	{
			addEventListener( Event.ADDED_TO_STAGE, main );
		}
		
		private function main( e:Event = null ):void {
			removeEventListener( Event.ADDED_TO_STAGE, main );
			
			/**
			 * Add a default Knob
			 */
			var h		:Knob 		= new Knob();
			h.x 		= 30; 
			h.y 		= 10;

			h.addEventListener( KnobEvent.CHANGE, 
				function( e:KnobEvent):void {
					h_txt.text = String( Math.round( e.value ) ) ;
				}
			);
			
			addChild( h );
			
			var h_txt	:TextField	= new TextField()
			h_txt.x 		= h.x+h.width;
			h_txt.y 		= h.y-(h.height/2);
			h_txt.textColor	= 0xffffff;
			addChild( h_txt );

			/**
			 * Add a Vertical Knob
			 */
			
			var v:Knob 	= new Knob();
			v.x 		= 20;
			v.y 		= 30;
			v.rotation 	= 90;
			
			v.addEventListener( KnobEvent.CHANGE, 
				function( e:KnobEvent):void {
					v_txt.text = String( Math.round( e.value ) ) ;
				}
			);

			
			addChild( v );
			
			var v_txt	:TextField	= new TextField()
			v_txt.y 		= v.x+v.width;
			v_txt.x 		= v.y-(v.height/2);
			v_txt.textColor	= 0xffffff;
			addChild( v_txt );
			
			
			
//			var matrix:Matrix 	= new Matrix();
//			matrix.createGradientBox(v.Width, v.Height);
//			v.RenderBackground = function():void {
//				with(this.graphics ) {
//					beginGradientFill(GradientType.LINEAR, [0xff0000, 0x00ff00, 0x0000ff], [1, 1, 1], [0x00, 0x80, 0xFF], matrix);
//					drawRect(0, 0, v.Width, v.Height);
//					endFill();
//				}
//			}
//
//			var d:Knob 	= new Knob();
//			addChild( d );
//			d.x 		= 70;
//			d.y 		= 50;
//			d.Max		= 50;
//			d.KnobHeight= 5;
//			d.Height	= 20;
//			d.rotation 	= 45;
//			d_txt.x 	= 200;
//			d_txt.y 	= 200;
//			d.addEventListener( KnobEvent.CHANGE, 
//				function( e:KnobEvent):void {
//					d_txt.text = String( Math.round( e.Value ) ) ;
//				}
//			);
//			
//			var v2:Knob 	= new Knob();
//			addChild( v2 );
//			v2.x 			= 320;
//			v2.y 			= 30;
//			v2.Max 			= 1000;
//			v2.rotation 	= 90;
//			v2.Color 		= 0x004400;
//			v2.KnobColor 	= 0xff44ff;
//			v2.KnobWidth 	= 5;
//			v2.KnobHeight 	= 20;
//			v2_txt.x 		= 290;
//			v2_txt.y 		= 230;
//			v2.addEventListener( KnobEvent.CHANGE, 
//				function( e:KnobEvent):void {
//					v2_txt.text = String( Math.round( e.Value ) ) ;
//				}
//			);			
		}
	}
}